# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>

# Variables for dotnet-stage0 build version 6.0
# This APKBUILD is designed to be the same for version 6.0 and up
# except for the variables in this first section

pkgname=dotnet6-stage0
pkgdesc="The .NET Core stage0 bits for dotnet build"
pkgver=6.0.102
pkgrel=4

# stage0 build requires prebuilt artifacts that are, for the most part,
# packaged in a single tar. This tar is built for linux-x64, thus it needs
# to be adapted for current linux-musl-$CARCH platform. Following variables
# set required parameters
_artifacts_ver=0.1.0-6.0.100-bootstrap.29
_artifacts_get="
	microsoft.aspnetcore.app.runtime.linux-x64.6.0.1.nupkg
	microsoft.netcore.app.ref.6.0.1.nupkg
	microsoft.netcore.app.crossgen2.linux-x64.6.0.1.nupkg
	microsoft.netcore.app.host.linux-x64.6.0.1.nupkg
	microsoft.netcore.app.runtime.linux-x64.6.0.1.nupkg
	system.reactive.core.4.1.1.nupkg
	"
_artifacts_exclude='*Intermediate*'

# Tag of tarball generator. This may change from usual due to mistakes from upstream
_installertag=v$pkgver-source-build

# Test suite tags
_testtag=6207e217336d4f9c92add85b310c8a4b1ac0e6b1
_turkeytag=v11

# Tests timeout (in seconds)
_tests_timeout=600
# Test suite disable flags
# following tests can only work after packaging step
_disabled_tests="man-pages distribution-package bash-completion"
# we don't care if not latest release
_disabled_tests="$_disabled_tests release-version-sane"
# test broken: no musl release for omnisharp
_disabled_tests="$_disabled_tests omnisharp"
# test broken: permission issue on lxc / pipelines
_disabled_tests="$_disabled_tests createdump-aspnet workload"
# liblttng-ust_sys-sdt.h: no 'NT_STAPSDT' on Alpine's lttng-ust package
# lttng: known issue, see https://github.com/dotnet/runtime/issues/57784
_disabled_tests="$_disabled_tests liblttng-ust_sys-sdt.h lttng"
# {bundled,system}-libunwind: use system version on all but aarch64/armv7, as broken
# see https://github.com/redhat-developer/dotnet-regular-tests/issues/113
[ "$CARCH" = "aarch64" ] && _disabled_tests="$_disabled_tests system-libunwind"
[ "$CARCH" = "armv7" ] && _disabled_tests="$_disabled_tests system-libunwind"
[ "$CARCH" = "x86_64" ] && _disabled_tests="$_disabled_tests bundled-libunwind"
# publish-ready-to-run: broken due to crossgen2 nupkg on musl-arm64 / musl-arm platform being broken
# should be fixed with https://github.com/dotnet/runtime/pull/66814
[ "$CARCH" = "aarch64" ] && _disabled_tests="$_disabled_tests publish-ready-to-run publish-ready-to-run-linux"
[ "$CARCH" = "armv7" ] && _disabled_tests="$_disabled_tests publish-ready-to-run publish-ready-to-run-linux"

# Patches to be used. String before '_' refers to repo to patch
# Look for patch notes within each patch for what they fix / where they come from
# build_* patches applies directly to $builddir
_patches="
	aspnetcore_musl-build-fix.patch
	build_arm-build.patch
	build_copy-sbrp.patch
	build_musl-build-fix.patch
	check_alpine-support.patch
	command-line-api_fix-musl-build.patch
	command-line-api_use-work-tree-with-git.patch
	fsharp_use-work-tree-with-git.patch
	installer_arm-build.patch
	installer_forgotten-MicrosoftAspNetCoreAppRuntimePac.patch
	installer_musl-build-fix.patch
	installer_portable-runtime-id.patch
	installer_reprodicible-tarball.patch
	runtime_lld-fix.patch
	runtime_detect-armv8.patch
	runtime_disable-package-validation.patch
	runtime_fix-musl-123.patch
	runtime_force-microsoftnetcoreilasmpackageruntimeid-as-musl.patch
	runtime_non-portable-distrorid-fix-alpine.patch
	runtime_rid-alpine-315.patch
	runtime_rid-alpine-316.patch
	runtime_x86-64-use-system-libunwind.patch
	sdk_telemetry-optout.patch
	sdk_portable-runtime-id.patch
	sdk_add-zsh-compdef-completion-script.patch
	vstest_use-work-tree-with-git.patch
	xliff-tasks_use-work-tree-with.git.patch
	"

# Custom prepare
default_prepare() {
	return
}

# Following for dotnet-stage0 build version 6.0 and up
_pkgver_macro=${pkgver%.*}
_pkgver_prior=1
_pkgver_name="${_pkgver_macro//[.0]}"
arch="x86_64 aarch64 armv7"
url=https://www.microsoft.com/net/core
license="MIT"
subpackages="
	dotnet$_pkgver_name-stage0-artifacts:artifacts:noarch
	dotnet$_pkgver_name-stage0-bootstrap
	"
_default_source="
	Private.SourceBuilt.Artifacts.$_artifacts_ver.noextract::https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$_artifacts_ver.tar.gz
	https://gist.githubusercontent.com/omajid/c04b6025de49d0b7b18ab4a7e789484e/raw/b33c57f6bf9c00bb8633375123d2d3594fe81c26/nappo.py
	source-build-tarball-$pkgver.tar.gz::https://tarball
	source-build-testssuite.tar.gz::https://github.com/redhat-developer/dotnet-regular-tests/archive/$_testtag.tar.gz
	source-build-turkey.tar.gz::https://github.com/redhat-developer/dotnet-bunny/archive/refs/tags/$_turkeytag.tar.gz
	"
checkdepends="
	babeltrace
	binutils
	coreutils
	file
	gawk
	jq
	lttng-tools
	npm
	procps
	sed
	strace
	util-linux-misc
	which
"
makedepends="
	bash
	clang
	cmake
	findutils
	git
	grep
	icu-dev
	inetutils-syslogd
	krb5-dev
	libgit2-dev
	libintl
	libunwind-dev
	libxml2-dev
	libxml2-utils
	linux-headers
	lldb
	lldb-dev
	lld
	lld-dev
	llvm-dev
	lttng-ust-dev
	nodejs
	openssl-dev
	zlib-dev
	"
builddir="$srcdir"/source-build-tarball-$pkgver
_checkdir="$srcdir/dotnet-bunny-${_turkeytag/v}"
_testdir="$srcdir"/dotnet-regular-tests-$_testtag
_cli_root="$srcdir"/bootstrap
_artifactsdir="$_cli_root"/artifacts
_libdir=/usr/lib

# custom function that converts Alpine arch syntax to dotnet arch syntax
_get_arch() {
	case $1 in
		x86_64) local arch=x64;;
		aarch64) local arch=arm64;;
		armv7|armhf) local arch=arm;;
	esac
	echo $arch
}
_dotnet_arch=$(_get_arch $CARCH)

# custom source updater function for all dotnet versions
#
# Prebuilt artifacts only provides linux-x64 nukgs. As Alpine uses linux-musl,
# the below scripts updates source to fetch the musl version of those packages,
# allowing packaging of the correct architecture. Thus, everytime Artifacts
# is updated, or new architectures are added, this function needs to be
# executed using 'abuild _update_source'
_update_source() {
	deps
	[ -z "$source" ] \
		&& msg "Removing source from APKBUILD"
	sed -E -i \
		-e '/^source=".*"$/d' \
		-e '/^source="/,/"$/d' \
		\
		-e "/^source='.*'\$/d" \
		-e "/^source='/,/'\$/d" \
		APKBUILD

	source="$_default_source"
	fetch
	local nuget_source="$_default_source \$_patches"
	msg "Updating source"
	local nappo_exclude="$_artifacts_exclude"
	# shellcheck disable=SC3045
	local nappo_exclude="$(printf '--exclude %s ' $nappo_exclude)"
	local nappo_get=$(tar --list -f "$srcdir"/Private.SourceBuilt.Artifacts.*.noextract --wildcards '*.linux-x64.*' $nappo_exclude)
	local nappo_get="$_artifacts_get $nappo_get"
	for package in $nappo_get; do
		for _arch in $arch; do
			local filename=${package##*/} # Extracts just filename
			local suffix=${filename##*[0-9]} # Extracts what's after version number
			local nupkg=${filename/$suffix} # Extracts nupkg name with version
			[ -z "${filename##*servicing*}" ] && local nupkg=${filename%%-servicing*}
			local name=${nupkg%*.*.*.*} # Extracts name without version
			case $name in
				*win32*|*x64*|*arm64*) ;;
				''|*[0-9]*) name=${name%*.*.*};;
			esac
			local version=${nupkg/$name.} # Extracts version out of nupkg using name
			local name=${name/linux-x64/linux-musl-"$(_get_arch $_arch)"} # Converts to current arch
			[ -z "${filename##*servicing*}" ] && unset version
			echo "Getting $name [${version:-latest}] (replaces $package)"
			local nappo_out="$(python3 "$srcdir"/nappo.py download --verbose $name ${version:-})"
			local nupkg="${nappo_out#*.nupkg}"
			local uri=${nappo_out/$nupkg}
			local nupkg=$(echo $nupkg | tr -d '\n')
			[ -f "$nupkg" ] && mv $nupkg "$SRCDEST"/.
			local nuget_source="$nuget_source $uri"
			[ -z "${name##*linux*}" ] || break
		done
	done
	for _arch in $arch; do
		local nuget_source="$nuget_source dotnet-sdk-$pkgver-linux-musl-$(_get_arch $_arch).noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$pkgver/dotnet-sdk-$pkgver-linux-musl-$(_get_arch $_arch).tar.gz"
	done
	local nuget_source="$(printf '%s\n' $nuget_source)"
	printf 'source="\n%s\n"\n' "$nuget_source" >>"$APKBUILD"
	undeps
}

# Custom patch logics
_patch() {
	local i failed=
	if ! have_patches; then
		return 0
	fi
	if [ ! -d "$builddir" ]; then
		error "Is \$builddir set correctly?"
		return 1
	fi

	msg "Deploying patches"
	for i in $source; do
		case ${i%::*} in
			*.patch)
				local package=${i%%_*}

				# checks if patch is arch specific
				unset arch_spec
				for j in ${arch/_/-}; do [ -z "${i##*"$j"*}" ] && local arch_spec=true; done
				# if arch specific, checks if patch is applicable to this exact arch
				if [ -n "${i##*"${CARCH/_/-}"*}" ] && [ "$arch_spec" ]; then continue; fi

				msg "Applying $i to $package"
				cd "$builddir"
				case $package in
					check*)cd "$_testdir" || { echo "$_testdir does not exist"; failed=$failed $i; continue; };;
					build*)cd "$builddir";;
					*) cd src/$package.* || { echo "$package does not exist for patch"; failed=$failed $i; continue; };;
				esac
				patch -Np1 -i "$srcdir/$(filename_from_uri $i)" || failed="$failed $i"
				cd "$builddir"
			;;
		esac
	done

	if [ -z "$failed" ]; then
		return 0
	fi
	error "The following patches failed to apply:"
	for i in $failed; do
		printf "  %s\n" "$i"
	done
}

# dotnet relies on itself when building, we thus need a bootstrap runtime
# that is copied to write-capable folder
_prepare_bootstrap() {
	msg "Settings up bootstrap"

	# creates _artifactsdir and _cli_root at same time
	mkdir -p "$_artifactsdir"

	# extract bootstrap
	tar -xzf "$srcdir"/dotnet-sdk-$_pkgver_macro*$_dotnet_arch.noextract -C "$_cli_root" --no-same-owner

	# extract artifacts
	tar -xf "$srcdir"/Private.SourceBuilt.Artifacts.*.noextract -C "$_artifactsdir" --no-same-owner \
		--exclude '*x64*' \
		--exclude '*Intermediate*'

	# install pulled nupkgs
	install -m 644 "$srcdir"/*.nupkg "$_artifactsdir"/.

	# Corrupt libcoreclrtraceptprovider.so when lttng <=2.13.0
	# is detected as tracing is broken on dotnet platform
	# due to ABI changes
	# See https://github.com/dotnet/runtime/issues/57784.
	if [ -f "/usr/lib/liblttng-ust.so.1 " ]; then
		rm "$_cli_root"/shared/Microsoft.NETCore.App/*/libcoreclrtraceptprovider.so
	fi
}

# Build doesn't set all the right executable bits for the right file types
_fix_executable() {
	# add executable bit
	find "$1" -type f \( \
		-name 'apphost' -o \
		-name 'singlefilehost' -o \
		-name 'lib*so' \
			\) \
		-exec chmod +x '{}' \;

	# remove executable bit
	find "$1" -type f \( \
		-name '*.a' -o \
		-name '*.dll' -o \
		-name '*.h' -o \
		-name '*.json' -o \
		-name '*.pdb' -o \
		-name '*.props' -o \
		-name '*.pubxml' -o \
		-name '*.targets' -o \
		-name '*.txt' -o \
		-name '*.xml' \
			\) \
		-exec chmod -x '{}' \;
}

# dotnet build is a two step process. The first step involves sourcing the
# source code to various components, and then the build can proceed as a second
# step. To be able to assure integrity of sources and permit caching, we want to
# build a tarball that can be checked with checksum. Following function is
# executed automatically in fetch() if tarball is not in SRCDEST.
_build_tarball() {
	deps

	# fetches everything but tarball
	local org_source=$source
	source=${source/source-build-tarball*\/tarball}
	default_fetch
	source=$org_source

	# preparations
	cd "$srcdir"
	[ -d "installer" ] || { git clone https://github.com/dotnet/installer --branch $_installertag && cd "$srcdir"/installer; } && cd "$srcdir"/installer
	_prepare_bootstrap

	# makes tarball reproducible
	patch -Np1 -i "$startdir"/installer_reprodicible-tarball.patch || true

	# without these exports, build still attempts a download of dotnet sdk
	export _InitializeDotNetCli="$_cli_root"
	export DOTNET_INSTALL_DIR="$_cli_root"
	export DotNetBuildFromSource=true

	# following args activate tarball build
	local args="
		/p:ArcadeBuildTarball=true
		/p:TarballDir=$builddir
		/p:TarballFilePath=$SRCDEST/${builddir##*/}.tar.gz
		"
	./build.sh $args | tee -a "$srcdir"/installer/build.log

	# unsets export so they don't bleed into other steps
	unset _InitializeDotNetCli DOTNET_INSTALL_DIR DotNetBuildFromSource
}

fetch() {
	# Builds tarball if not built
	[ -f "$SRCDEST"/${builddir##*/}.tar.gz ] || _build_tarball

	default_fetch
}

prepare() {
	default_prepare

	_patch
	_prepare_bootstrap

	# makes sure Artifacts archive is not expected, else build fails as it
	# expected a file that tells it what artifacts tarball it should unpack
	# As artifacts in Alpine's build process are provided by a package, and
	# installed in a folder, this is pulled using --with-packages
	[ -d "$builddir"/packages/archive ] && rm -r "$builddir"/packages/archive

	# readjusts OfficialBuildId back to current date. By default this is not
	# necessary. Unfortunately, by default source tarball isn't reproducible
	# installer_reprodicible-tarball.patch makes it so, but at the cost of
	# setting OfficialBuildId of certain volatile packages to a date in 1990.
	# Thus, to adequately prepare tarball we have to reset git-info build ids
	# to current date, as expected.
	for i in "$builddir"/git-info/*; do
		sed -i "s|<OfficialBuildId>19900101.1</OfficialBuildId>|<OfficialBuildId>$(date +"%Y%m%d.1")</OfficialBuildId>|" "$i"
	done
}

build() {
	msg "Building $pkgname-$pkgver"

	# logs args, else the output is forwarded to log files which isn't ideal in a
	# pipeline environment
	local args="
		/v:minimal
		/p:LogVerbosity=minimal
		/p:MinimalConsoleLogOutput=true
		"

	# PrebuiltPackagesPath needs to be set despite --with-packages,
	# as build tools has an error
	local args="$args /p:PrebuiltPackagesPath=$_artifactsdir"

	# by default, build sources artifacts from tarball in packages/archive
	# SDK from Microsoft. Due to wanting to use self-hosted versions of
	# both of these, they are packaged by stage0 and bootstrap and provided
	# in $_libdir/dotnet/{bootstrap,artifacts}. SDK is then sourced
	# using _prepare_bootstrap function, and then pointed to using
	# --with-sdk arg. Artifacts are sourced using --with-packages. Due to
	# this being a read-only folder, this breaks without build_copy-sbrp.patch
	# which makes build copy SBRP subfolder rather than move it.
	./build.sh \
		--with-sdk "$_cli_root" \
		--with-packages "$_artifactsdir" \
		-- $args | tee -a "$builddir"/build.log
}

check() {
	msg "Unpacking produced dotnet"
	export DOTNET_ROOT="$_checkdir/release"
	if [ ! -d "$DOTNET_ROOT" ]; then
		mkdir -p "$DOTNET_ROOT"
		tar -xzf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz -C "$DOTNET_ROOT" --no-same-owner
	fi
	export PATH="$DOTNET_ROOT:$PATH"
	# some files either should or should not have executable bits
	# (done again during packaging - this is for tests)
	_fix_executable "$DOTNET_ROOT"

	msg "Building turkey test suite"
	if [ ! -d "$_checkdir"/turkey ]; then
		cd "$_checkdir"/Turkey
		dotnet publish \
			-f netcoreapp3.1 \
			-c Release \
			-p:VersionPrefix=${_turkeytag/v} \
			-p:VersionSuffix="$(git rev-parse --short HEAD)" \
			-o "$_checkdir"/turkey
	fi

	msg "Running test suite"
	cd "$_testdir"
	for i in $_disabled_tests; do
		[ -d "$i" ] && sed -i 's|"enabled": true|"enabled": false|' $i/test.json
	done
	dotnet "$_checkdir"/turkey/Turkey.dll -t $_tests_timeout || local ERROR=true
	if [ $ERROR ]; then
		msg "Check error reported, dumping logs"
		for i in *.log; do
			msg "Dumping $i"
			cat "$i"
		done
		return 1
	fi
}

package() {
	# lua-aports / buildrepo doesn't know to always build stage0 first when dealing
	# with virtual packages. Thus, we need to depend on an empty stage0 pkg that
	# dotnetx-build will pull, thus forcing build of stage0 first
	mkdir -p "$pkgdir"
}

bootstrap() {
	# allows stage0 to be pulled by dotnetx-build if first build of dotnetx
	provides="dotnet$_pkgver_name-bootstrap"
	provider_priority=$_pkgver_prior

	local targetdir="$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver
	# directory creation
	install -dm 755 \
		"$targetdir"/docs \
		"$targetdir"/comp

	# unpack build artifacts to bootstrap subdir for use by future builds
	tar -xzf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz -C "$targetdir"/ --no-same-owner

	# assemble completions
	install -m 755 "$builddir"/src/sdk.*/scripts/register-completions.bash "$targetdir"/comp/
	install -m 755 "$builddir"/src/sdk.*/scripts/register-completions.zsh "$targetdir"/comp/

	# assemble docs
	find "$builddir" -iname 'dotnet*.1' -type f -exec cp '{}' "$targetdir"/docs/ \;

	# some files either should or should not have executable bits
	_fix_executable "$subpkgdir"

	# See https://github.com/dotnet/source-build/issues/2579
	find "$subpkgdir" -type f -name 'testhost.x86' -delete
	find "$subpkgdir" -type f -name 'vstest.console' -delete
}

# build relies on a plethora of nupkgs which are provided by this Artifacts file.
# stage0 sources these from Microsoft, which then allows bootstrap to build
# locally hosted versions. The following unpacks built tarball into directory
# for use by future builds.
artifacts() {
	pkgdesc="Internal package for building .NET $_pkgver_macro Software Development Kit"
	provides="dotnet$_pkgver_name-bootstrap-artifacts"
	provider_priority=$_pkgver_prior

	# directory creation
	install -dm 755 \
		"$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver \
		"$subpkgdir"/usr/share/licenses

	# extract artifacts to artifacts dir for use by future dotnet builds
	tar -xzf "$builddir"/artifacts/$_dotnet_arch/Release/Private.SourceBuilt.Artifacts.*.tar.gz -C "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ --no-same-owner \
		--exclude '*Intermediate*'
}

source="
Private.SourceBuilt.Artifacts.0.1.0-6.0.100-bootstrap.29.noextract::https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.0.1.0-6.0.100-bootstrap.29.tar.gz
https://gist.githubusercontent.com/omajid/c04b6025de49d0b7b18ab4a7e789484e/raw/b33c57f6bf9c00bb8633375123d2d3594fe81c26/nappo.py
source-build-tarball-6.0.102.tar.gz::https://tarball
source-build-testssuite.tar.gz::https://github.com/redhat-developer/dotnet-regular-tests/archive/6207e217336d4f9c92add85b310c8a4b1ac0e6b1.tar.gz
source-build-turkey.tar.gz::https://github.com/redhat-developer/dotnet-bunny/archive/refs/tags/v11.tar.gz
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-x64/6.0.1/microsoft.aspnetcore.app.runtime.linux-musl-x64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-arm64/6.0.1/microsoft.aspnetcore.app.runtime.linux-musl-arm64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-arm/6.0.1/microsoft.aspnetcore.app.runtime.linux-musl-arm.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Ref/6.0.1/microsoft.netcore.app.ref.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-x64/6.0.1/microsoft.netcore.app.crossgen2.linux-musl-x64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-arm64/6.0.1/microsoft.netcore.app.crossgen2.linux-musl-arm64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-arm/6.0.1/microsoft.netcore.app.crossgen2.linux-musl-arm.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-x64/6.0.1/microsoft.netcore.app.host.linux-musl-x64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-arm64/6.0.1/microsoft.netcore.app.host.linux-musl-arm64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-arm/6.0.1/microsoft.netcore.app.host.linux-musl-arm.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-x64/6.0.1/microsoft.netcore.app.runtime.linux-musl-x64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-arm64/6.0.1/microsoft.netcore.app.runtime.linux-musl-arm64.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-arm/6.0.1/microsoft.netcore.app.runtime.linux-musl-arm.6.0.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//System.Reactive.Core/4.1.1/system.reactive.core.4.1.1.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-x64/6.0.0/microsoft.aspnetcore.app.runtime.linux-musl-x64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-arm64/6.0.0/microsoft.aspnetcore.app.runtime.linux-musl-arm64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.AspNetCore.App.Runtime.linux-musl-arm/6.0.0/microsoft.aspnetcore.app.runtime.linux-musl-arm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-x64/6.0.0/microsoft.netcore.app.crossgen2.linux-musl-x64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-arm64/6.0.0/microsoft.netcore.app.crossgen2.linux-musl-arm64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Crossgen2.linux-musl-arm/6.0.0/microsoft.netcore.app.crossgen2.linux-musl-arm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-x64/6.0.0/microsoft.netcore.app.host.linux-musl-x64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-arm64/6.0.0/microsoft.netcore.app.host.linux-musl-arm64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Host.linux-musl-arm/6.0.0/microsoft.netcore.app.host.linux-musl-arm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-x64/6.0.0/microsoft.netcore.app.runtime.linux-musl-x64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-arm64/6.0.0/microsoft.netcore.app.runtime.linux-musl-arm64.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//Microsoft.NETCore.App.Runtime.linux-musl-arm/6.0.0/microsoft.netcore.app.runtime.linux-musl-arm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost/6.0.0/runtime.linux-musl-x64.microsoft.netcore.dotnetapphost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.dotnetapphost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost/6.0.0/runtime.linux-musl-arm.microsoft.netcore.dotnetapphost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost/6.0.0/runtime.linux-musl-x64.microsoft.netcore.dotnethost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.dotnethost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost/6.0.0/runtime.linux-musl-arm.microsoft.netcore.dotnethost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy/6.0.0/runtime.linux-musl-x64.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy/6.0.0/runtime.linux-musl-arm.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver/6.0.0/runtime.linux-musl-x64.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver/6.0.0/runtime.linux-musl-arm.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.ILAsm/6.0.0/runtime.linux-musl-x64.microsoft.netcore.ilasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.ILAsm/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.ilasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.ILAsm/6.0.0/runtime.linux-musl-arm.microsoft.netcore.ilasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.ILDAsm/6.0.0/runtime.linux-musl-x64.microsoft.netcore.ildasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.ILDAsm/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.ildasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.ILDAsm/6.0.0/runtime.linux-musl-arm.microsoft.netcore.ildasm.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-x64.Microsoft.NETCore.TestHost/6.0.0/runtime.linux-musl-x64.microsoft.netcore.testhost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm64.Microsoft.NETCore.TestHost/6.0.0/runtime.linux-musl-arm64.microsoft.netcore.testhost.6.0.0.nupkg
https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2//runtime.linux-musl-arm.Microsoft.NETCore.TestHost/6.0.0/runtime.linux-musl-arm.microsoft.netcore.testhost.6.0.0.nupkg
dotnet-sdk-6.0.102-linux-musl-x64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.102/dotnet-sdk-6.0.102-linux-musl-x64.tar.gz
dotnet-sdk-6.0.102-linux-musl-arm64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.102/dotnet-sdk-6.0.102-linux-musl-arm64.tar.gz
dotnet-sdk-6.0.102-linux-musl-arm.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.102/dotnet-sdk-6.0.102-linux-musl-arm.tar.gz
$_patches
"
sha512sums="
db502b7fe368d45093c8f3747a34df2b51fc5bcba7602248afb4352a445228f82b19cb3019fe6e20f5246b1b0b4ab6e3f5acea56a769a1a5815d153d24178207  Private.SourceBuilt.Artifacts.0.1.0-6.0.100-bootstrap.29.noextract
90b3ec14fd02cbef8af2086c26ef2f4f23c4c5ce83dac39cacbb36e506ea9914aae6c3b3580af2e71141b8f0435b4910f60970333011b4ddd594839f5fd7ec8e  nappo.py
0159ac8b7294968b4908bd0a49804df1ab1cd67f2099fb279efd53a8876e9f2831ca4165c3d3cf2c0458d223123fac40baf96ee81b7ea31f289d93171fcf6177  source-build-tarball-6.0.102.tar.gz
b5072009d5d1639645a78fef61643ed7db981fdc9e1c99f8bdcdabb49a9210c64c67a3cb02af4eaded4bf92fce4e418c50c4d5567cedbe7773d27307905e210c  source-build-testssuite.tar.gz
5890ef0edc5b6f5e020cedc71be438039c8a2e19c5e71aa538c7fe4046560eea521a621d52638ff1312a398847414fefe311f2f9ac520765472517fab542c419  source-build-turkey.tar.gz
a9f8d70b6b78b785353e079856c381e121070850140542ce22148fb657949be7e06ac15a001f7fc80dc6c880d644f45498bed3fcd9ec0dd0007fde9878d405cb  microsoft.aspnetcore.app.runtime.linux-musl-x64.6.0.1.nupkg
0448e187885bdc17f035e644f809b704d95b76a6b2f42671e4d2a7e25f2f3057f5e3f78412e98041b571330fb5398474970403d65c353a24506d91f9091cf665  microsoft.aspnetcore.app.runtime.linux-musl-arm64.6.0.1.nupkg
6893c799acc33f7b9a36822e41ffe33abfe03fca472402bfe27881403b6aadbc7f1697a4119ea75869616fbd988210cba75aef83731b9b327233ae65f7169acd  microsoft.aspnetcore.app.runtime.linux-musl-arm.6.0.1.nupkg
161217cb34c2612461145b4991635d8b8d61d866f3152fa251a5d66ce39be9a54054214ca86b0223777d0c0cc1d4e6b52cf1d45843d7648e75831c5b1a40f967  microsoft.netcore.app.ref.6.0.1.nupkg
c7c30b6c0d696e36f00c06699b8d60051383326e517bb737301d9c878a91f1252be162001348d079f98a77e4f123a5cdced44495fcdf0751c8849e9edde630b7  microsoft.netcore.app.crossgen2.linux-musl-x64.6.0.1.nupkg
1e74d42715f1822ea4394e65ade1d83843b4e15cbb34f137eddf596b1a042dcf0996eed988f12c592ab6db3d5f961f8021e0c126015a1a197db572bcedc777f1  microsoft.netcore.app.crossgen2.linux-musl-arm64.6.0.1.nupkg
acfc082b371021a4fc2b4e3987945b37a1a21910c414c99a044e20952be65a0585a7ef67920037ab4bfc0fa85d6eb831d83758f162b708ea4d5143ecb386bd74  microsoft.netcore.app.crossgen2.linux-musl-arm.6.0.1.nupkg
b9b5c896ccfd639828576b86c3cf4be7f0f2864a57975d956364b8b339e50946c3a957d6c8ceccbcbd78d870bde4c3b403452540aae9a571e934840324d9d269  microsoft.netcore.app.host.linux-musl-x64.6.0.1.nupkg
3a26f296124a5f5e15cc8abdd4a761ae5b87454b0499f505ba9997c5ba1decef496771a6841f837b8c9b4bfbd295a603a517b4891c94c308615c65e6525bb2c2  microsoft.netcore.app.host.linux-musl-arm64.6.0.1.nupkg
8b9d5f87aa4bf13150b87f0cf7d847604413b5414b1bdd69ef12b7321e24672a64525537cea17d79a3ce6116967c7c3ae09b8202515d6d46eace516611515b9f  microsoft.netcore.app.host.linux-musl-arm.6.0.1.nupkg
640dc4e0916ebf0c2165daa5b6227535565c8c8621550cb3149f22e712be02086e2c61ce1cda91f927cbdd7427e4c24d4614705a83c7fa1439828399e627c0c5  microsoft.netcore.app.runtime.linux-musl-x64.6.0.1.nupkg
35d547c643ca2bd16ce2f50b784a48ecd5f5a18a73326d00aa8978d6c0af10aa5ab84b8bc05d7491b7d8717b93ac4dc9d66c72c726cce6c6920b143b0d6bff45  microsoft.netcore.app.runtime.linux-musl-arm64.6.0.1.nupkg
bc15fa31a19b50491a5000a4e9bc5151ba6ebae440c7f3a0e554f7815ef2c58dbcd7cb405da1299247e0a980194b85950c92a616177ecdc8293ffaa18b0b8508  microsoft.netcore.app.runtime.linux-musl-arm.6.0.1.nupkg
a24efb7578e2020e17c877ffe00b49f8f476b0845fdc55c16404008a9566d8628a72c2208bd23df745c88592ebe9c922b0cf1bc1f95f834b539bbcc2cbf516c5  system.reactive.core.4.1.1.nupkg
49a30d0de9337e9dc5fd9c7f7f192667a16255cb7abedc2e28151e5dc754115af3df72fee65719714b075cf7eeb2fe16b99ba2705e6705142c467035918eca4c  microsoft.aspnetcore.app.runtime.linux-musl-x64.6.0.0.nupkg
3a350b33155ae1d15092615f4280dc6c7f857257205e7af39198de33409cdb463fc41dbe4dd691e97d01a3f69df2f1733de16ef12386c9d381d0bda7795a11eb  microsoft.aspnetcore.app.runtime.linux-musl-arm64.6.0.0.nupkg
9c0def7d8bde5683b0d4922da5bc030844baa6af1abb5fb4776e7fff0bb2f031494ecfd52df8c8a6a235ed2b5588cc933b4c03dea606fdb34908e99fad86ac60  microsoft.aspnetcore.app.runtime.linux-musl-arm.6.0.0.nupkg
c808fdab7cd2524a078f4b1853635f4e316565738c493f5498f39f38b398cb8656b63098a72e3943b9ebbda25d72c24d32af1f78dcee6dc352f1d452cada0a9e  microsoft.netcore.app.crossgen2.linux-musl-x64.6.0.0.nupkg
ffbeb9e95f687c7b90521a1436427a08dd3b6f3dfcae35345fb85100d42f9e97a57e98d3068fed21e56e0bc310daf6a5975d9515ba1b053147a32debfcc3a4aa  microsoft.netcore.app.crossgen2.linux-musl-arm64.6.0.0.nupkg
4346e950bc11b0f614fd54f5582667a65956b129528130978306fc0c4e7e6f9b24f28c1beb80fe50ad389f1655113de8aca9ff813bf7ac645c14bd92685b1961  microsoft.netcore.app.crossgen2.linux-musl-arm.6.0.0.nupkg
9a505dc87ef79e2ea50f522f6267dbc30ce3255158b88646b66fe13ad5df74d275001ce9e327db81808a2cbf53191f29acb98b0f0ad8adf54fbfcd66efa4a6ac  microsoft.netcore.app.host.linux-musl-x64.6.0.0.nupkg
2a4fd1d410242d9ac582f3bdbe99c526fb005c5ece1f4e206485dd25002d789948f566891b0afbac569d84c655f8208c172e4e4f9e8bb0c66c998988529d930d  microsoft.netcore.app.host.linux-musl-arm64.6.0.0.nupkg
dba46327284c6b83be7c62f296c2f2d513a2c6e44f17744d5f5903752c551ac9494844e0ca1c8b0de9b06668e15683e229dec0a470a4f4250a9998560a0d27d4  microsoft.netcore.app.host.linux-musl-arm.6.0.0.nupkg
4de8b21ba038718812fc9b5e375438d53e85f5fae51cdea04cc7403ae6a3e61738d2d0510f04d069ae7d44c1850c0d1ced20cb6ad01149cce91b4f896c7c6489  microsoft.netcore.app.runtime.linux-musl-x64.6.0.0.nupkg
d3b34662b55ba781384871119be9be6b4f5268265357c4cd3f63ac6308fae260f25a0d73ebebe4a7750aa38e158514ae1137451ff9a5b5b46d56d24fe20fe50e  microsoft.netcore.app.runtime.linux-musl-arm64.6.0.0.nupkg
5dde362cf7e3b5f5a70a197a6ddc3b9209d9ca01824d9cbf43ffdccf13e65dbed874a91425693221e0d261bb7c54fca2b0e448cdb2107370783874f5f54f8653  microsoft.netcore.app.runtime.linux-musl-arm.6.0.0.nupkg
78e38bea2009f1fbbc4ced06a754db8179e56a6c2dcfdc7d62e931f65375d72c146427a3a30992b9f330afe32ca02be8ac9810cc56b2527c093c0b00a876edd0  runtime.linux-musl-x64.microsoft.netcore.dotnetapphost.6.0.0.nupkg
0dc0536b1b38cd448a2817c0ac52b088e8fa861dce1a275f53234619defdff92f594b126cfb671ee3b3dbbd0c3d89aeffc69a48412a8f7c74cea6617dd370881  runtime.linux-musl-arm64.microsoft.netcore.dotnetapphost.6.0.0.nupkg
a2f6c54486431c0f5d903c0c30060a27af52a69fb17198d75b36dc1da4d98ab36d9676396ff51d07cf0d54e4a7aec968605d88d8d510dd6d480c9960abda7450  runtime.linux-musl-arm.microsoft.netcore.dotnetapphost.6.0.0.nupkg
4740e2bbb5f295f4aed083210ab06af59c7dac82eeffbad8d61319a0aab76b639bff50543a5f2403afcc52b0d6b60f9c0d20a641107735e6827764fae535f21b  runtime.linux-musl-x64.microsoft.netcore.dotnethost.6.0.0.nupkg
c0f63c5a8e59b3fc2dc77a2593a723f8758ddffc42874307615d33c748c18827e5738f5c04550336f2c4688790acb6d4e2a3a1f468df21cb762900f344916bc4  runtime.linux-musl-arm64.microsoft.netcore.dotnethost.6.0.0.nupkg
61d44c1e1047a08337b6d82f657fd8c2066ee6421cdf2cc163b73075b7f7bf0bd61b8840e3f6c20b6cc78579150576388fcc5ec7013376fbbc851e37b4a8a788  runtime.linux-musl-arm.microsoft.netcore.dotnethost.6.0.0.nupkg
a6960818d9550a5f8c5f5e9e76cb56600a77fe5038ab94a17e02d0472f31f836f6f945172708f214173df68c5ae23a807b1d674a6e85a680074a5797ad015474  runtime.linux-musl-x64.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
a1de76984b55e0da45d1bdd757095b3a1ace38352c1dd51aaac80b2449aba8342dd36df7109fe5f6dc2901c941935588bf4725ddd86cb8d85877fb828c035390  runtime.linux-musl-arm64.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
c1b527d0d77b9652549ae2282761f5e8d770f496bbeda7c33edf1e4aee29147f0be4d42dbc8e066f1592006ad46ce43355ac82dca525950051819b564bb96841  runtime.linux-musl-arm.microsoft.netcore.dotnethostpolicy.6.0.0.nupkg
0b3e126d3ff45f076240825fe03576d48c8fe0b3b5e0177d5d18fea48029d4c71328b4b6ac7020437f43ed408f0a146a3713c29e2e65f3fe2ee7361b81ddf244  runtime.linux-musl-x64.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
0629f6e6c5b85d56cd224201b66f1a61c36e07c9e95ead88a8dfa2135bfba4849da9eecf393b7e96132d9be7ac30a1b28354be5c9fe97f378b93e4aefc303696  runtime.linux-musl-arm64.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
008386a783280e97ca925bb707e267be50877f39eac2c413fd489d23a3f8768854bd668a7bae53a66ff6399bf5b4e95ad548e813505443c81b8d85a08d8a163e  runtime.linux-musl-arm.microsoft.netcore.dotnethostresolver.6.0.0.nupkg
0eb771d7e23607a256f209c958a8025af6a7c1e20948b244f2903941aad5e1c0f130a9285ee29086d6188090e8692f5f129329a88da54d3f0a7e7e5b7e4257ef  runtime.linux-musl-x64.microsoft.netcore.ilasm.6.0.0.nupkg
5ad26a79b5ba3ebdc6932dde50218d2c0669377dcb628debbb448e0dfc5d001d7e07b121f18ecd50b667ab372e10ec0bfe166a6e2103faf2f824995fdad0c355  runtime.linux-musl-arm64.microsoft.netcore.ilasm.6.0.0.nupkg
2a24e56ddf0f3e3ef7cb64523b7c6ebf02b91a73287c342783eb66e43a9bbe0cd23eb4b26f435e6b194bf1a40017e6aae60333ff087b18657672b243e8c8ce76  runtime.linux-musl-arm.microsoft.netcore.ilasm.6.0.0.nupkg
25669b580fe5d0d82316df967c285edbef3047c74c00a74a8feeaf703fd8279bad6f56de8ef244cdb4f021913360f0db2a862fd29c5b8cbef7fec01b12b3600d  runtime.linux-musl-x64.microsoft.netcore.ildasm.6.0.0.nupkg
ad094439c9e730ed076495d1720b79331199520b551df4747c3c2f5d4cff010672456b94ff8e0f80b30721b5ee410c0057a83605d5f49a277cb079475a82fb61  runtime.linux-musl-arm64.microsoft.netcore.ildasm.6.0.0.nupkg
ea25a609a88dd118a3b769fb58486013e238e885826efe8da0bf248fcc1879d7b7961786648e8e022e29e3cb2592f52919bbe75ab613823747ac7891ddb9c779  runtime.linux-musl-arm.microsoft.netcore.ildasm.6.0.0.nupkg
ff6873b3e6a824989725dd9f35044c2910e9bc28bff6da379d658a4bf5b05a5346666e667ce0d2fce0630a8abbbf93644540d63f65c4282b277c8686bcb92784  runtime.linux-musl-x64.microsoft.netcore.testhost.6.0.0.nupkg
5d35049a8151f620290c884d6bb6764a7245ced5ac7f79d394272b037f657560d9ace04a8d4c97ed4398432f9e52f91dfac7d3c6088b1ac76b3840cb0b3c7c96  runtime.linux-musl-arm64.microsoft.netcore.testhost.6.0.0.nupkg
c0cd9c4a359428691e10bc336d3c13ed3e1dddbea670e344d33c05e42c8da2ca91c553685916e6c00258b03e26078661a617883f9468c7ffccb64c12e20d729e  runtime.linux-musl-arm.microsoft.netcore.testhost.6.0.0.nupkg
921ada7b90a87a06dfe5353defcfff0337b696a246daf7898802342f45c3b5ffa03ab8c0edb3cb6f0e0971b533457f41e96fe7655f94f2ee8b6292b0fe9c8fcf  dotnet-sdk-6.0.102-linux-musl-x64.noextract
d47657df5640016cf84479ff1f895cbb03e6b0811c71fa73b6769c6a1e55ad2a9b130c759fdfa634367e906de12ab56cf6ab185168b3d2e396b613a4c065afb7  dotnet-sdk-6.0.102-linux-musl-arm64.noextract
b5fe2f9b29de220d94ecfd23036c89d046c71edc8aa6918f2f9c5543d20e9537add15aaa941f632e0c25562b29b1ef061a4887623b0a13ae65d20e8a9ff136ac  dotnet-sdk-6.0.102-linux-musl-arm.noextract
a2b21c38ed739f9bd18b39a28ef21b940ae32beeb2c8f99575289111e5ecaae40e017a500b3b452ef5df7c7e12dff2f8385acada92ca7507d1ed351c6aa9e311  aspnetcore_musl-build-fix.patch
e81cd08bd87bcacb9037959c29cb8457ce010a3bce3127eaeaabbd56552d5817b824949320ad4f9bdc582f5edf9e0f8072017b94e40f7606181c51bc93298190  build_arm-build.patch
bbb72fd61156611c0dd87f3d46e7cb36e0d506da84ea466c5e26513e49abf6b5523c87421bcdef85f06a50488cfed5d73b618e1212b35aad82fe2d43b19da3d9  build_copy-sbrp.patch
8812aa5c60d20737a5b2a808e6ac7f72bcb3c7810bb28c6c1714b62c286f8ceb24c2ab5745b09367208850feb600edf94a22a2288d5b5a1d1aca9575fb63aefc  build_musl-build-fix.patch
c2e4f232f049e3e29b11f751b59bb2750be9d265f3cd93be5a767cdd1c35cc9630a4ca77cfc0c8d23deb913f1d16f2668dde40c5ae6f5e22e41da317aaf045fb  check_alpine-support.patch
7806bc888295dbc127b43384511719ef19b0a9b032b4efdd6ea619c0ba105eb7aadf6fa35ba0cb43a4cd98f2267e9f0905f9d574fa3666b634efd5591b6e8212  command-line-api_fix-musl-build.patch
71612ac1d9933335583cf722dc5ecfb37739f662a165cd2afb62bf342e83946955269370da57d3295fa4f781683a2fb6027068584b996efcb33d71e18f7191e2  command-line-api_use-work-tree-with-git.patch
06ed5091e461c160930746768a1f296bdf7f876b0578cdeb93077e623212c0c535b24e406f9408c402e83eac361a33dba2d7dda7ce7140dd23061ebd8a4a466d  fsharp_use-work-tree-with-git.patch
f198924d1c9cf22288fb99072e06bc5ce1eccac5cb7361e8f7b3973e6399db50f141aaa8a2dda07c0153208e74819c082a7a74d58785caa0cb2c1efcef28f21b  installer_arm-build.patch
9724b8b4cb52ac41e7d7a49a0dd2c9937ecf5dc096a123f8cbc5302bbb256ccf440cfa12bfba8295070d7eaac25406fa054e2dce8023257da4d2aeb3c54fe6f3  installer_forgotten-MicrosoftAspNetCoreAppRuntimePac.patch
f1f10017830e941ff42c28c2f764e489ab02800b528ec89c23c7cf5145225e2956a8db044bc7bac08fc87fa5bd3700ba49df952df09d3e46705dec6bcecb40f5  installer_musl-build-fix.patch
f4c164256adab18dad187243041416ab612af566501db96069a4c14e4a35ae2fe81f07ec8535b4ff132625423b03ab4dfe3892aefa59fa0494eba6723ba72929  installer_portable-runtime-id.patch
fe85d6ee786b74c90d69fe3fed03352570f96613ab03cf15d12530da6b98dffaff8cc9ece3044679486b97841481ece4359b80f81b82e7c96fe1dfc8fb6e2945  installer_reprodicible-tarball.patch
dda6b463af8e0c8342b9c0d1a584f6d6410fb48df9fb0ef3c07d5ee7eb4abf2a29a01bf7a39fc70c2f5986c0b24c7bfe602cbfbeb1157cb0e0fb0eaa7fb03d1c  runtime_lld-fix.patch
2e79e27b201a3e4423d63666b3dd575d0cb5ddbe258af24d9a2d0f9eb4cc8d177070249cfd08536fa7c3c6debdf939239a7e2c1aadd692d3e903bbb168f241b5  runtime_detect-armv8.patch
79dacbaeb9af252e515028f800efc5c1628be9290007418bf4a219f49d4264b2abab2a89af6cd9ff3c74451fe40d6811f7d3c13b9237da187c419295f4ba1280  runtime_disable-package-validation.patch
aef649d2480d71ce68b030c0d67c2bfd965349a7ab52dbdca7c954edadb308ee6fbebf357113292d1323bfa9b2f8f01fe28d3904b2ebcc7a555742135bfdc726  runtime_fix-musl-123.patch
cb946dfb27eace2cd5204c77fc7e459c40fac8af364635f543284819856b479470839fa0da8e175c0c75268f219e1dfc4d9fb3d0f707553b67d8b80bbe18d3c4  runtime_force-microsoftnetcoreilasmpackageruntimeid-as-musl.patch
adb7537feb742f9b838323336e891b6e92c017215628ab2742841b6ec5945987d76082c6d42746f84062f0e537bb1d74cfa3989866fb105b9608af23abf17753  runtime_non-portable-distrorid-fix-alpine.patch
c52ee082d61e05098422d3e826023e620c42db02c9a043864968651e7846dc818ce6bb76396812a358690e8d07cda2ca7cfdcbd559c51866c931d4e5e52f384a  runtime_rid-alpine-315.patch
1c737579bbc8152cb376632781188e543f4b64920adfa537d313366d55f23c896ecd61e366b5e801cd85441aadab8e61b9b775532e829cb347749279c8028902  runtime_rid-alpine-316.patch
e8fba8748c600696a529dd9b861b2e4bffed9f6a56c1e6ec58c1444b567b92a00e6c310f835eb7915db5f924409782d6ec3d7ae98082bde22401ce7836ee7acb  runtime_x86-64-use-system-libunwind.patch
2d651813c6a46e885636fe141d90a33c92d0fa450611cadd944b45ec6929a169e49a6cba18afdd708e3359d5ee204f1c1f6e3bfce2ba9d1bdb083edf78d0337e  sdk_telemetry-optout.patch
532534ed88fda70b5088b655af00a7218c72f99a65b35194ebcd960b354b24f043c4b63e72b915aaf69ba847f7befa7d650495a0741d7526accb58b425f74a26  sdk_portable-runtime-id.patch
55afa9c74be6f5a87f1ff5aa44caad094cf620eb4388f6407218acf3d58a878f5565a0e875e95c3dbe0efca1879c120ee4b8076c521bfc9d6069a652c4a4fdd8  sdk_add-zsh-compdef-completion-script.patch
d41ed2c7f4b81be2770d1c6b4bba17cea0772131bee994ebce9ca7acc302b2c15cc1adac6a814b866af04728cd4beb0ca411d218d113922fe32001c485b89c67  vstest_use-work-tree-with-git.patch
4d85a411c4add10072c8b411e05b9ece4696c9409c9a363a0f5ecf2adc6ccb815d868c96941da31a6c4e9d981cede144222155eadac1fbed851989086835d101  xliff-tasks_use-work-tree-with.git.patch
"
